Data transmission between electronic devices or components of electronic devices plays an important role in modern technology. With the increase in computing power and storage capacity during recent years, the data volumes to be handled by such devices have rapidly increased. Consequently, data transmission systems with ever increasing data rates have been developed.
In order to deal with these increased data rates a variety of transmission systems have been provided. Many of these transmission systems are bus systems having a shared transmission medium to enable more than two devices to be connected. Examples of these are the internal computer buses ISA and PCI, the PCMCIA bus used for portable computers, the PS/2 bus, the RS 232, USB, SCSI and IEEE 1394 (Firewire) buses to connect external devices to computers. Similarly, Ethernet and Token Ring systems are used to connect computers to LANs (Local Area Networks). An example of a bus system designed for connecting ICs in digital control systems is the I2C-bus by Philips semiconductors.
In parallel buses, more than one bit is transmitted at a time over a multiplicity of parallel transmission lines, whereas in serial buses the bits are serially transmitted over one transmission line. Parallel buses achieve higher data rates, due to the simultaneous transmission, but serial buses need fewer lines (e.g. one twisted-pair line) and are therefore better suited for greater transmission distances.
The I2C-bus (see e.g. “The I2C-bus Specification”, Version 2, January 2000) is a serial bus-system for 8-bit oriented digital control applications. Systems which make use of the I2 C-bus concept typically include a microcontroller and peripheral devices such as memories and I/O expanders interfaced with the bus by bus controllers. In the I2C-bus, the transmission is based on a master-slave protocol. Access to the bus is governed by the device which is the “master”. The other devices, the slaves, may only access the bus upon request by the master. The I2C-bus is a multi-master bus which means that the role of the master may be taken by different devices. The bus has two lines, a serial data line (SDA) and a serial clock line (SCL). The serial data line carries the data between the devices connected to the bus. The master device has a master clock which puts its master-clock signal onto the clock line (SCL). The clock line (SCL) supplies the master clock signal to all slave devices which use it for reading and sending data. Thus, the I2C-bus uses synchronous transmission. Due to this, the data rate of the I2C-bus is limited to rates in the order of 100 kbit/s to 3 Mbit/s, and the maximum length of the bus cable is also limited.
Other known bus systems use asynchronous transmission which means that, although the rates of data bits in sequences of transmitted data (e.g. in packets, frames, etc.) are nearly the same, the data bits of different packets or frames may not lie within the same timing raster. Each bus device has its own clock, and when it receives a new data packet or frame, it synchronizes its internal clock to the bits in the packet or frame, e.g. by means of a start bit at the beginning of the packet or frame. Having synchronized its internal clock in such a way, the device is able to read the bits of the packet or frame.